define(['jquery',"jweixin"],function($, wx){
	var $this = {
		init : function(obj) {
			obj = obj || {};
			this.config(obj);// 初始化微信信息
		}, // end init
		config : function(obj) {
			obj = obj || {};
			wx.config(obj.config);// 初始化微信信息
			wx.ready(function() {
				if(obj.success) obj.success();
			});// end wx.ready
			wx.error(function(){
				$.alert('微信认证失败，请重新打开页面');
				if(obj.error) obj.error();
			});// end wx.error
		},// end config
		getLocation : function(obj) {//获取用户位置
			obj = obj || {};
			if(obj.config) {
				$this.config({
					config : obj.config,
					success : function(){
						obj.config = null;//避免死循环
						$this.getLocation(obj); 
					},
				});// 初始化微信信息
			} else {
				wx.getLocation({
				    type: obj.type, // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
				    success : function (res) {//JSON.stringify(res)
				    	//$.alert('地理信息获取成功');
				    	$this.latitude = res.latitude; // 纬度，浮点数，范围为90 ~ -90
				    	$this.longitude = res.longitude; // 经度，浮点数，范围为180 ~ -180。
				    	$this.speed = res.speed; // 速度，以米/每秒计
				    	$this.accuracy = res.accuracy; // 位置精度
				    	if (obj.success) obj.success();
				    },
				    cancel : function (res) {
				    	$.alert('您拒绝获取地理位置，请重新打开页面');
				    	if(obj.error) obj.error();
				    },
				    error : function(res) {
				    	$.alert('获取地理位置失败，请重新打开页面');
				    	if(obj.error) obj.error();
				    }
				});// end wx.getLocation
			}
		}, // end getLocation
		openLocation : function(obj) {//打开地图
			obj = obj || {};
			if(obj.config) {
				$this.config({
					config : obj.config,
					success : function(){
						obj.config = null;//避免死循环
						$this.openLocation(obj); 
					},
				});// 初始化微信信息
			} else {
				wx.openLocation({
				    latitude: obj.res.latitude, // 纬度，浮点数，范围为90 ~ -90
				    longitude: obj.res.longitude, // 经度，浮点数，范围为180 ~ -180。
				    name : '', // 位置名
				    address : '', // 地址详情说明
				    scale: 28, // 地图缩放级别,整形值,范围从1~28。默认为最大
				    infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转
				});// end wx.openLocation
			}
		}, //end openLocation
	};
	return $this;
});